◆UW-IMAP(IMAP)

IMAPとは「Internet Mail Access Protocol」の事です。

クライアントでメールを閲覧する際に使用するプロトコルなのですが、
POPとはまた違った便利な機能を持っています。

POPは、受信メールをクライアントのマシンに一旦取り出して保存、それを閲覧するというものでした。
IMAPで受信した場合は、サーバーにある自分のディレクトリにメールを展開して保存します。
そしてクライアントはメールソフトを介してサーバーにあるメールを閲覧します。
この時、受信メールは削除を選ぶまで消さないので、POPで取ってくる事も可能です。
保存したければ、独自のフォルダを作成して、そこに保存しておきます。

この何が良いのかというと、「メールを一元管理できる」と言う事です。
例えば新しいPCでメールクライアントを追加した時、
POPで取り出していたのであれば、取り出すと同時に削除する事が多く、
過去メールはサーバーに残っていないため、
過去メールが必要になった場合、古いマシンから取ってきたり、時には諦めたりしました。

IMAPを使用した場合、サーバーに保存したメールが全て残っているので、
メールクライアントを導入するだけで、昔と全く同じ状態でメールが見れます。

しかし、受信メールは削除しない限りずっとサーバーに残るため、ディスクを圧迫します。
そのため一般のプロバイダではほとんど提供されてない機能だと思います。


この中で、「University of Washington(ワシントン大学)」が開発しているIMAPである、
UW-IMAPの導入方法を説明していきたいと思います。

有名なIMAPソフトといえば他に「Courier Imap」というソフトがあるのですが、
これはQmailに代表される「Maildir」形式に対応に特化しているらしいです。

「Maildir」とは、簡単に説明すればメールが届いた際、
自動的に1つのメールを1つのファイルとして保存する機能です。
基本はユーザーのホームディレクトリの「Maildir」以下に保存されていきます。

SendmailやPostfixでは基本的に受信メールの保存は「Mailbox形式」です。
FreeBSDでは「/var/mail」以下にユーザー別にまとめて受信メールが保存されますが、
これが「Mailbox形式」です。(Postfixでも「Mialdir形式」に拡張可能ですが、ここでは説明してません)


ちなみに、Webメールを導入する際にも、このIMAPはほぼ必須となっています。
理由は上に書いた「一元管理」で分かっていただけると思います。


◆UW-IMAPのインストール

Portsの場合「/usr/ports/mail/imap-uw」にあります。
早速導入してみましょう。はっきり言って、ソースからのコンパイルは面倒です。
全くmakeが通りません…かなり悩んで、結局断念しました。
portsからのインストールをオススメします。

注意して欲しいのは、imap-uwのインストール時、
ディフォルトではプレーンテキストでのログイン許可をしてないということです。
make時、「WITH_SSL_AND_PLAINTEXT=yes」という特殊な引数を指定してあげます。
ちなみに依存関係にある「cclient」のインストール時も引数を指定してあげないとハマります…ってか、ハマった…。

まず「cclient」をインストールです
Server# cd /usr/ports/mail/cclient
Server# make WITH_SSL_AND_PLAINTEXT=yes install
Server# make clean

次に本命の「UW-IMAP」です。
Server# cd /usr/ports/mail/imap-uw
Server# make WITH_SSL_AND_PLAINTEXT=yes install
Server# make clean

折角ですので、SSLで使用するための証明書…といっても、
どこも保証してくれない、いわば「俺様証明書」ですが作っておきます。
とりあずセキュアなIMAPログイン時に使用します。

Server# make cert
(色々聞かれるけど、全部エンターでいい)
Server# ls /usr/local/certs/
imapd.pem ipop3d.pem

次に「inetd.conf」を開いてIMAPがinetd経由で起動するように「#」を外します。
imap4 stream tcp nowait root /usr/local/libexec/imapd imapd

ついでにSSL使用時には
imaps stream tcp nowait root /usr/local/libexec/imapd imapd
と追加しておくと、俺様証明でよければ使用できます(ぉ
暗号化されるので、セキュアなIMAPを使用したい方はどうぞ。

そしてinetdにHUP信号を送って再起動です。

このままクライアントで見ようとすると、ホームディレクトリの中身が全部見えてしまうので、
IMAPを使用したいアカウントでログイン後、
> mkdir Mail
とかIMAP用フォルダを作成し、クライアントのメーラーはこのフォルダから見に行くように指定します。

Webメールの足がかりとしてインストールしたのであれば、これで終了ですね。

SSLはOutlookExpressでも使用可能なので、外部から接続する時は「IMAPS」を使用して、
IMAPはTcpWrapperでローカルからのみにアクセス制限かけておくといいかも知れません。


◆TcpWrapperでの設定

よく見てみると、今回の場合「imap4」でも「imaps」でも同じファイルを使用しています。
このままだと、どちらか一方だけTcpWrapperでフィルタをかける事が不可能です。

この場合、「シンボリックリンク」を使用することにより解決します。
Server# ln -s /usr/local/libexec/imapd /usr/local/libexec/imapsd

Server# ln -s /usr/local/certs/imapd.pem /usr/local/certs/imapsd.pem
見てのとおり別名を付けたわけですが、
この時SSL証明書ファイルも同時に別名で作成するのを忘れないで下さい。

imaps stream tcp nowait root /usr/local/libexec/imapsd imapsd
こう「/etc/inetd.conf」を書き換えて、inetdを再起動させます。

最後に「/etc/hosts.allow」にて
imapsd : ALL : allow
と設定すれば、今後外部からはSSLを使用した「imaps」での接続しか使用出来なくなります。
当然この時、TcpWrapperによるアクセス制限を掛けていないと駄目ですが。

なお、Webメールの場合、IMAPを使用してメールを取り出す仕事はサーバーがやっているわけですから、
「ALL : 127.0.0.1(localhost) : allow」さえあれば何も問題は起こりません。


◆クライアントの設定

(鋭気製作中



[一つ上に戻る]

楽天モバイル[UNLIMITが今なら1円] ECナビでポインと Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!


無料ホームページ 無料のクレジットカード 海外格安航空券 解約手数料0円【あしたでんき】 海外旅行保険が無料! 海外ホテル